package com.hzw.saas.service.msg.mapper;

import java.util.List;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.hzw.saas.api.msg.bo.MsgBo;
import com.hzw.saas.api.msg.enums.MsgRead;
import com.hzw.saas.api.msg.enums.MsgType;
import com.hzw.saas.service.msg.model.Msg;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

/**
 * <p>
 * 用户消息表 Mapper 接口
 * </p>
 *
 * @author sonam
 * @since 2020-12-22
 */
@Mapper
public interface MsgMapper extends BaseMapper<Msg> {

    /**
     * 通过消息id集合查询，分页查询所有的消息
     *
     * @param msgIds
     * @return
     */
    IPage<MsgBo> findAllMsgByMsgIdList(IPage<MsgBo> page, @Param("msgIds") List<String> msgIds);

    /**
     * 查询消息ID
     *
     * @param groupIds
     *          当查询群组消息时，该参数起作用
     * @param userId  用户ID （不能为空）
     * @param msgType 消息类型  （不能为空）
     * @param msgRead 消息已读状态（为空则查所有消息）
     * @return
     */
    List<String> findAllMsgIdByMsgTypeAndMsgReadAndUserId(@Param("groupIds") List<String> groupIds, @Param("userId") String userId, @Param("msgType") MsgType msgType, @Param("msgRead")MsgRead msgRead);


}
